/*
 * Copyright (c) 2024. hallele, Inc All rights reserved.
 */

package cn.hallele.mc.sdk.portalcenter.common.enums;

import cn.hallele.infrastructure.data.converter.EnumConverter;
import cn.hallele.infrastructure.util.EnumUtil;
import lombok.Getter;

/**
 * MenuTypeEnum
 *
 * @author anle5
 * @since 2024/5/31 0:03
 */
@Getter
public enum MenuTypeEnum implements EnumConverter<String> {
    /**
     * 目录
     */
    DIRECTORY("1"),

    /**
     * 菜单
     */
    MENU("2"),

    /**
     * 按钮
     */
    BUTTON("3"),

    /**
     * 外链
     */
    IFRAME("4");

    /**
     * 状态标识
     */
    private final String code;

    MenuTypeEnum(String code) {
        this.code = code;
    }

    /**
     * 转换成实体字段值
     *
     * @param columValue 表字段里面的值
     * @return name
     */
    @Override
    public EnumConverter<String> convertToEntityAttribute(String columValue) {
        return EnumUtil.getBy((EnumUtil.HalFunction<MenuTypeEnum, String>) param -> param.code, columValue);
    }

    /**
     * 转换成表字段值
     *
     * @return 表字段里面的值
     */
    @Override
    public String convertToDatabaseColumn() {
        return this.code;
    }
}

